Адміністрація вирішила продати даний сайт. За детальною інформацією звертайтесь за адресою: rozrahu@gmail.com

Опрацювання рядків символів. Динамічний розподіл пам’яті.

Інформація про навчальний заклад

ВУЗ:
Національний університет Львівська політехніка
Інститут:
Не вказано
Факультет:
Не вказано
Кафедра:
Електронні обчислювальні машини

Інформація про роботу

Рік:
2004
Тип роботи:
Лабораторна робота
Предмет:
Засоби системного програмування
Група:
КI

Частина тексту файла

Міністерство освіти і науки України Національний університет „Львівська політехніка” Кафедра електронних обчислювальних машин Звіт про виконання лабораторної роботи № 4 з курсу „ Засоби системного програмування ” Тема: Опрацювання рядків символів. Динамічний розподіл пам’яті. Виконав: студент групи КІ-2 Львів – 2004 Мета роботи: Закріпити теоретичні знання та оволодіти практичними навиками опрацювання символьних рядків. Засвоїти методику роботи з символьними рядками за допомогою стандартних функцій бібліотеки Сі. Завдання на лабораторну роботу Розробити програмне забезпечення для опрацювання символьних рядків відповідно до заданого варіанту. Під словом, слід розуміти послідовність алфавітних символів, що належать множині {’А’, ’Б’, …, ’Я’, ’а’, ’б’, …, ’я’, ’A’, ’B’, …, ’Z’, ’a’, ’b’, …, ’z’}. Речення, це послідовність слів розділених пропуском (пробілом). Кожне слово чи речення повинно представлятися в пам’яті машини окремою символьною змінною. При реалізації програм, максимально використати стандартні (бібліотечні) функції обробки символьних рядків. Ці функції описані в заголовковому файлі string.h, а їх імена починаються з префіксу “str…”. Програма повинна обробляти слова та речення довільної довжини. Для цього використати механізм динамічного розподілу пам’яті. При реалізації механізму динамічного розподілу пам’яті використати стандартні Сі – функції malloc(), calloc() realloc() та free(). При вирішенні задач забезпечити дружній інтерфейс з користувачем. Варіант 23. Ввести зі стандартного пристрою вводу речення. Замінити в словах буквосполучення ’x…z’ буквосполученням ’s…q’, де ’s’, …, ’z’ – довільні алфавітні символи, а довжини буквосполучень різні, та вивести їх (слова) на стандартний пристрій виводу. Аналіз завдання та опис алгоритму вирішення задачі Використовуючи функції порівняння рядків символів шукаємо перше потрібне буквосполучення в реченні, замінюємо його новим, а потім визначаємо початок і кінець слова, в якому знайдене шукане буквосполучення і виводимо змінене слово. Аналогічні дії повторюємо для всіх слів з шуканим буквосполученням. Текст програми #include <stdio.h> #include <conio.h> #include <string.h> #include <alloc.h> #include <ctype.h> int main(void) { int i, j, k, left, right=0, words=0; char *sent, *str, *newstr, *temp; clrscr(); if ((sent=(char*) malloc(200*sizeof(char)))==NULL) //INPUT BEGIN printf("No memory for sentence has been allocated!"); if ((str=(char*) malloc(20*sizeof(char)))==NULL) printf("No memory for string has been allocated!"); if ((newstr=(char*) malloc(20*sizeof(char)))==NULL) printf("No memory for new string has been allocated!"); if ((temp=(char*) malloc(40*sizeof(char)))==NULL) printf("No memory for temporary string has been allocated!"); printf("Input a sentence (words may contain only A..Z and a..z):\n "); gets(sent); sent=(char *) realloc(sent,strlen(sent)+1); printf("Input letter sequence to change (case sensitive): "); gets(str); str=(char *) realloc(str,strlen(str)+1); printf("New letter sequence: "); gets(newstr); newstr=(char *) realloc(newstr,strlen(newstr)+1); //INPUT END while (sent[right]!='\0') // perebyrayemo po sumvolu v rechenni { temp[0]='\0'; if (strncmp(&sent[right],str,strlen(str))==0)//rech maye taki sumvoly? { left=right; //┌ poshyk while (isalpha(sent[left]) && left!=0) left--; //│ livoji if (left != 0) left++; //└ mezhi slova while (isalpha(sent[right++])); //┌ poshuk pravoji right--; //└ mezhi slova printf("\n%d>Slovo, v yakomu znajdeno \"%s\": ",words+1,str); for (i=left;i<=right;i++) putchar(sent[i]); // vyvid slova j=left; k=0; while (strncmp(&sent[j],str,strlen(str))!=0) { temp[k]=sent[j]; k++; j++; } temp[k]='\...
Антиботан аватар за замовчуванням

01.01.1970 03:01

Коментарі

Ви не можете залишити коментар. Для цього, будь ласка, увійдіть або зареєструйтесь.

Завантаження файлу

Якщо Ви маєте на своєму комп'ютері файли, пов'язані з навчанням( розрахункові, лабораторні, практичні, контрольні роботи та інше...), і Вам не шкода ними поділитись - то скористайтесь формою для завантаження файлу, попередньо заархівувавши все в архів .rar або .zip розміром до 100мб, і до нього невдовзі отримають доступ студенти всієї України! Ви отримаєте грошову винагороду в кінці місяця, якщо станете одним з трьох переможців!
Стань активним учасником руху antibotan!
Поділись актуальною інформацією,
і отримай привілеї у користуванні архівом! Детальніше

Оголошення від адміністратора

Антиботан аватар за замовчуванням

пропонує роботу

Admin

26.02.2019 12:38

Привіт усім учасникам нашого порталу! Хороші новини - з‘явилась можливість кожному заробити на своїх знаннях та вміннях. Тепер Ви можете продавати свої роботи на сайті заробляючи кошти, рейтинг і довіру користувачів. Потрібно завантажити роботу, вказати ціну і додати один інформативний скріншот з деякими частинами виконаних завдань. Навіть одна якісна і всім необхідна робота може продатися сотні разів. «Головою заробляти» продуктивніше ніж руками! :-)

Новини